
import { _decorator, Component, Node, Label } from 'cc';
import { IGameServerInfo } from './shared/gateClient/GameServer';
const { ccclass, property } = _decorator;

/**
 * Predefined variables
 * Name = ServerInfo
 * DateTime = Mon Feb 21 2022 10:39:12 GMT+0800 (中国标准时间)
 * Author = fengssy
 * FileBasename = ServerInfo.ts
 * FileBasenameNoExtension = ServerInfo
 * URL = db://assets/ServerInfo.ts
 * ManualUrl = https://docs.cocos.com/creator/3.4/manual/zh/
 *
 */

@ccclass('ServerInfo')
export class ServerListItem extends Component {
    // [1]
    // dummy = '';

    // [2]
    // @property
    // serializableDummy = 0;

    public serverInfo?: IGameServerInfo;

    public onClick?:(sv:IGameServerInfo)=>void;

    start() {
        var textComp = this.getComponent(Label);
        if (textComp) {
            textComp.string = `${this.serverInfo?.serverName}  (${this.serverInfo?.clientCount}人在线)`;
        }
    }

    onclick(){
        this.onClick?.call(this, this.serverInfo!);
    }

    // update (deltaTime: number) {
    //     // [4]
    // }
}

/**
 * [1] Class member could be defined like this.
 * [2] Use `property` decorator if your want the member to be serializable.
 * [3] Your initialization goes here.
 * [4] Your update function goes here.
 *
 * Learn more about scripting: https://docs.cocos.com/creator/3.4/manual/zh/scripting/
 * Learn more about CCClass: https://docs.cocos.com/creator/3.4/manual/zh/scripting/decorator.html
 * Learn more about life-cycle callbacks: https://docs.cocos.com/creator/3.4/manual/zh/scripting/life-cycle-callbacks.html
 */
